"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/5/30 9:36
@Description : 
.编写一个Python程序，实现以下功能
- 创建一个名为students.csv的CSV文件，其中包含以下列标题："Name", "Age", "Score"。
- 提示用户输入若干名学生的姓名、年龄和成绩，将这些信息逐行写入students.csv文件中。
- 从students.csv文件中读取所有学生信息，并以表格形式打印到控制台
"""
import csv

# 用户输入数据的缓存
students = []
while True:
    name = input('请输入名字:')
    age = input('请输入年龄:')
    score = input('请输入分数:')

    # 数据封装
    student = {
        'name': name,
        'age': age,
        'score': score,
    }
    students.append(student)
    is_continue = input('是否继续(Y/N):')
    if is_continue.upper() == 'N':
        with open('students.csv', 'a', newline='') as file:
            dict_writer = csv.DictWriter(file, fieldnames=students[0].keys())
            dict_writer.writeheader()
            dict_writer.writerows(students)
        print('录入完毕!!!')
        break

# 展示csv文件中的数据
from prettytable import PrettyTable

table = PrettyTable()
table.field_names = ['name', 'age', 'score']
with open('students.csv', 'r', newline='') as file:
    """
    reader = csv.reader(file)
    for row in reader:
        if row[0] == 'name':
            continue
        table.add_row(row)
    """

    dict_reader = csv.DictReader(file)
    for row in dict_reader:
        table.add_row([row['name'], row['age'], row['score']])

print(table)
